using System;
using System.Collections.Generic;

namespace Wayloop.Fusion.Core.Objects
{
    public class ProjectRelease : FusionObject<int>
    {
        protected Project project;
        protected string name;
        protected string description;
        protected DateTime releaseDate;
        protected IList<Task> tasks;

        public virtual Project Project
        {
            get { return project; }
            set { project = value; }
        }

        public virtual string Name
        {
            get { return name; }
            set { name = value; }
        }

        public virtual string Description
        {
            get { return description; }
            set { description = value; }
        }

        public virtual DateTime ReleaseDate
        {
            get { return releaseDate; }
            set { releaseDate = value; }
        }

        public virtual IList<Task> Tasks
        {
            get { return tasks; }
            protected set { tasks = value; }
        }


        public ProjectRelease()
        {
            tasks = new List<Task>();
        }


        public override int GetHashCode()
        {
            return GetHashCode(Project, Name, Description, ReleaseDate);
        }
    }
}